import WxRequest from './request2'
var baseurl = "https://news-at.zhihu.com"
//这里传参的意义：可以重写默认参数，提供外部修改
const instance = new WxRequest({
    baseURL: baseurl,//"https://news-at.zhihu.com",
    timeout: 15000,
    isLoading: true
})
//重写默认拦截器，重写后默认的不会在走
//外部配置请求拦截器，会覆盖默认的
//config是用户传递的请求参数，在这个里面进行修改后在返回给请求，继续请求
instance.interceptors.request = (config) => {
    console.log("拦截器-请求前，处理逻辑=", config);
    console.log("拦截器-请求前，处理逻辑=", config.header);
    //在请求发送之前做逻辑处理
    //添加token
    if( undefined==config.header){
        config.header={}
    }
    config.header.token = "asdfsdfsdfsdfsadfasfasddf"
    return config
}
//重写默认拦截器，重写后默认的不会在走
//外部配置响应拦截器，会覆盖默认的
//把response根据自己的逻辑处理好后在返回给resolve
instance.interceptors.response = (response) => {
    //在响应之后做逻辑处理
    //{isSuccess}=response,等价于var isSuccess=response.isSuccess
    const { isSuccess } = response
    //走的是fail给出提示
    if (!isSuccess) {//走的fail函数
        wx.showToast({
            title: '网略异常',
            icon: 'error'
        })
    }

    console.log("拦截器-响应后，处理逻辑 响应参数=", response);
    switch (response.statusCode) {
        case 200:
            response.msg = "请求成功"
            response.code = 0
            break
        case 208://或者直接跳转到登录页面
            response.msg = "请重新登录，token失效"
            response.code = 208
            break
        default:
            response.msg = "网络异常，网络超时"
            response.code = 1
            break
    }
    return response
}

//暴露到外部，方便其他文件使用
export default instance


// // 对 WxRequest 进行实例化
// const instance = new WxRequest({
//     baseURL: 'https://some-domain.com/api', // 使用时请换成真实接口
//     timeout: 1000, // 超时时长
//     isLoading: false // 是否使用默认的 loading 效果
//   })

//   // 添加请求拦截器
// instance.interceptors.request = (config) => {

//     // 在发送请求之前做些什么
//     return config
//   }
  
//   // 添加响应拦截器
//   instance.interceptors.response = (response) => {
  
//     // response.isSuccess = true，代码执行了 wx.request 的 success 回调函数
//     // response.isSuccess = false，代码执行了 wx.request 的 fail 回调函数
      
//     // response.statusCode // http 响应状态码
      
//     // response.config // 网络请求请求参数
      
//     // response.data 服务器响应的真正数据
      
//     // 对响应数据做点什么
//     return response 
//   }
// export default instance
